package problemas;

import java.util.ArrayList;
import java.util.Vector;

public class Gramatica1 extends Gramatica{
	
	/**
	 * expr -> expr op expr / ( expr ) / id / num 
	 * op -> + / - / * / \ 
	 * */
	public Gramatica1() {
		Vector<String> vectorExpr1 = new Vector<String>();
		vectorExpr1.add("expr");
		vectorExpr1.add("op");
		vectorExpr1.add("expr");

		Vector<String> vectorExpr2 = new Vector<String>();
		vectorExpr2.add("(");
		vectorExpr2.add("expr");
		vectorExpr2.add(")");

		Vector<String> vectorExpr3 = new Vector<String>();
		vectorExpr3.add("id");

		Vector<String> vectorExpr4 = new Vector<String>();
		vectorExpr4.add("num");

		ArrayList<Vector> expr = new ArrayList<Vector>();
		expr.add(vectorExpr1);
		expr.add(vectorExpr2);
		expr.add(vectorExpr3);
		expr.add(vectorExpr4);

		Vector<String> vectorI = new Vector<String>();
		vectorI.add("expr");
		ArrayList<Vector> i = new ArrayList<Vector>();
		i.add(vectorI);

		Vector<String> vectorOp1 = new Vector<String>();
		vectorOp1.add("+");

		Vector<String> vectorOp2 = new Vector<String>();
		vectorOp2.add("-");

		Vector<String> vectorOp3 = new Vector<String>();
		vectorOp3.add("*");

		Vector<String> vectorOp4 = new Vector<String>();
		vectorOp4.add("/");

		ArrayList<Vector> op = new ArrayList<Vector>();
		op.add(vectorOp1);
		op.add(vectorOp2);
		op.add(vectorOp3);
		op.add(vectorOp4);

		rules.put("i", i);
		rules.put("expr", expr);
		rules.put("op", op);
	}

}
